package kn.tool.response;

import com.alibaba.fastjson.JSONObject;

/**
 * @author: dengkunnan
 * @date: 2020-07-12 18:08
 * @description: Http请求响应模板类
 **/
public class HttpResponse {
    public final static String CODE = "code";
    public final static String MESSAGE = "message";
    public final static String DATA = "data";

    /**
     * 请求成功，返回响应信息
     *
     * @param msg  成功提示信息
     * @param data 响应数据
     * @return
     */
    public static JSONObject ok(String msg, Object data) {
        JSONObject result = new JSONObject();
        result.put(CODE, 200);
        result.put(MESSAGE, msg);
        result.put(DATA, data);
        return result;
    }


    /**
     * 请求成功，返回响应信息
     *
     * @param msg 成功提示信息
     * @return
     */
    public static JSONObject ok(String msg) {
        JSONObject result = new JSONObject();
        result.put(CODE, 200);
        result.put(MESSAGE, msg);
        result.put(DATA, "");
        return result;
    }

    /**
     * 请求失败，返回响应信息，用于自定义错误信息
     *
     * @param code 失败码
     * @param msg  失败提示信息
     * @return
     */
    public static JSONObject notOk(Integer code, String msg) {
        JSONObject result = new JSONObject();
        result.put(CODE, code);
        result.put(MESSAGE, msg);
        result.put(DATA, null);
        return result;
    }

    /**
     * 请求失败，返回响应信息，用于自定义错误信息
     *
     * @param code 失败码
     * @param msg  失败提示信息
     * @param data 失败返回数据
     * @return
     */
    public static JSONObject notOk(Integer code, String msg, Object data) {
        JSONObject result = new JSONObject();
        result.put(CODE, code);
        result.put("msg", msg);
        result.put(DATA, data);
        return result;
    }

    /**
     * 请求异常，返回错误信息，用于全局异常处理
     *
     * @param msg
     * @return
     */
    public static JSONObject error(String msg) {
        JSONObject result = new JSONObject();
        result.put(CODE, 500);
        result.put(MESSAGE, msg);
        result.put(DATA, null);
        return result;
    }

    /**
     * 请求异常，返回错误信息，用于全局异常处理
     *
     * @param msg
     * @param data
     * @return
     */
    public static JSONObject error(String msg, Object data) {
        JSONObject result = new JSONObject();
        result.put(CODE, 500);
        result.put(MESSAGE, msg);
        result.put(DATA, data);
        return result;
    }
}
